Inserting a search box into a mobile terminal dialog messaging protocol

ABSTRACT

A method, system, and computer program product for inserting a search box into a mobile terminal messaging dialog. Upon receiving a dialog message (e.g., an email message) from a first user device, the method determines the format (e.g., IMAP) of the dialog message in order to insert a similarly-formatted search box. Then, the method modifies the dialog message by inserting the selected search box into the dialog message. The method receives a request from a second user (at a mobile terminal) and the method transmits the outbound dialog message with the inserted search box to the second user&#39;s mobile terminal. The second user&#39;s mobile terminal supports a web browser, and some dialog messages include pre-populated text in the search box, the pre-populated text based on the dialog message from the first user device. The second user browses using the inserted search box without having to explicitly launch a browser

The present application claims the benefit of priority to co-pendingU.S. patent application Ser. No. 13/458,686, entitled “SYSTEMS ANDMETHODS FOR INSERTION OF CONTENT INTO AN EMAIL OVER IMAP” (AttorneyDocket No. Y08210US00 (P0220); and the present application claims thebenefit of priority to co-pending U.S. patent application Ser. No.13/331,262, entitled “SYSTEMS AND METHODS FOR GENERATING REVENUE BASEDON CUSTOM CLICK TO CALL ADVERTISEMENTS” (Attorney Docket No. Y07922US00(P0216), both of which are hereby incorporated by reference in entirety.

FIELD

The present disclosure is directed towards internet messaging usingmobile terminals, and more particularly towards techniques for insertinga search box into a mobile terminal messaging dialog.

BACKGROUND

Each day, hundreds of millions of internet messages are sent betweenmobile devices (e.g., smartphones, mobile terminals, etc.) by users ofthe internet. Thus, there exists an opportunity for a search engineprovider or agent to engage with the users of these mobile devices. Forexample, if a search engine provider or agent could engage the users byproviding a search box embedded in the message, then the search engineprovider could solicit hundreds of millions of new search page viewseach day. Yet, legacy standards and legacy implementations ofmobile-to-mobile messaging does not support searching from within themessage itself. Instead, a user is encumbered with having to switchapplications (e.g., to a browser) and type in the search parameters, andetcetera.

What is needed are a techniques to embed a search box inside a message,and deliver the message over the internet to the user's mobile device,who in turn can see the search box when viewing the message using anative messaging client (e.g., email client, SMS client, etc.).

The legacy implementations provide native email and SMS clients onvarious mobile terminals (e.g., Android phones, iPhones, etc.), yet suchlegacy implementations offer only legacy experiences to users. Toimprove the user experience, techniques for inserting a search box intoa mobile terminal message is needed.

Other features and advantages will be apparent from the accompanyingdrawings, and from the detailed description that follows below.

SUMMARY

Disclosed herein are a method, system, and computer program product forinserting a search box into a mobile terminal messaging dialog. Uponreceiving a dialog message (e.g., an email message) from a first userdevice, the method determines the format (e.g., IMAP) of the dialogmessage in order to insert a similarly-formatted search box. Then, themethod modifies the dialog message by inserting the selected search boxinto the dialog message. The method receives a request from a seconduser (at a mobile terminal) and the method transmits the outbound dialogmessage with the inserted search box to the second user's mobileterminal. The second user's mobile terminal supports a web browser, andsome dialog messages include pre-populated text in the search box, thepre-populated text based on the dialog message from the first userdevice. The second user can browse using the inserted search box withouthaving to explicitly launch a browser.

BRIEF DESCRIPTION OF THE DRAWINGS

Specific embodiments and features are set forth in the appended claims.However, for purpose of explanation, several exemplary embodiments areset forth in the following figures. Like reference characters refer tocorresponding parts throughout the drawings.

FIG. 1 is a data flow diagram of a system for inserting a search boxinto a mobile terminal messaging dialog, according to some embodiments.

FIG. 2 is a ladder diagram of a protocol for inserting a search box intoa mobile terminal messaging dialog, according to some embodiments.

FIG. 3 is a diagram of a messaging dialog for inserting a search boxinto a mobile terminal messaging dialog, according to some embodiments.

FIG. 4 is a graphic showing selected portions of a composition screenduring a transformation for inserting a search box into a mobileterminal messaging dialog, according to some embodiments.

FIG. 5 is a graphic showing selected portions of a browser screen duringa suggestion display in a system for inserting a search box into amobile terminal messaging dialog, according to some embodiments.

FIG. 6 is a graphic showing selected portions of a composition screenduring a search activity while using a system for inserting a search boxinto a mobile terminal messaging dialog, according to some embodiments.

FIG. 7 depicts a block diagram of a system to perform certain functionsof a computer system, according to some embodiments.

FIG. 8 is a flow chart representation of a process flow for inserting asearch box into a mobile terminal messaging dialog, according to someembodiments.

FIG. 9 is a schematic diagram illustrating an example embodiment of anadvertising network, for implementing embodiments.

FIG. 10 is a schematic diagram illustrating an example embodiment of aclient device for implementing embodiments.

FIG. 11 is a schematic diagram illustrating an environment in which asearch engine may operate.

FIG. 12 is a block diagram of a computer system for implementingembodiments.

DETAILED DESCRIPTION

Reference will now be made to various embodiments, some examples ofwhich are illustrated in the accompanying drawings.

Overview

Techniques for inserting a search box into a mobile terminal dialogmessaging protocol are provided herein. Implementations allow the userto search the web directly from his/her messaging client (e.g., emailclient, SMS client, etc.). Following the techniques disclosed herein,users of any native client (e.g., email client, SMS client, etc.) thatoperates on any mobile device can search the web directly from his/hermessaging client by using an inserted search box.

In exemplary operation, a receiving user receives a message from asending user as a part of message dialog involving at least one mobileterminal. Once the receiving user reviews the content sent by thesending user, the receiving user might notice the search box embedded inthe message, and might interact with the search box to perform searchactivities (e.g., querying, reviewing search results, etc.). Forexample, user “Bob” might send a message to Alice, which message Alicereceives on her mobile terminal. The message might read: “Alice: Let'sfind out what are the best restaurants in Paris—Luv, Bob”. Alice mightread Bob's message and notice the search box embedded in the message.Alice can easily initiate a web search for “Paris restaurants” directlyfrom the embedded search box that was inserted into Bob's message.

Of course, the foregoing is but one exemplary use case, and additionaluse cases, additional features, and implementation techniques arepresented herein. For instance, in some embodiments, when a user doesdecide to interact with the search box, embedded code (e.g., HTML) thatwas inserted with the text box might prompt the user to select a defaultsearch provider. In such a case, HTML that was inserted with the textbox might prompt the user to select a default search provider, forinstance Yahoo! This example is further described in the context of FIG.5. Also, in some embodiments, the search box can be pre-populated withspecific content that can be determined and/or selected or otherwisedriven by the occurrence of words or other characteristics found in auser's message. This example is further described in the context of FIG.6.

Now, pertaining to mobile terminals (e.g., smartphones, iPads, etc.),many native third party email clients are delivered with or on themobile terminal as a “stock” application to process messages for theirusers via a “fetch” of the message (e.g., email) over IMAP using an IMAPserver. In other situations email or other messaging content is pushedfrom a server to the “stock” application. In some embodiments, a serverperforms operations for populating the search box with text at leastpartly based on the dialog message from a first user. In exemplaryembodiments, an HTML-5 search box is inserted dynamically into the bodyof the message. In some cases, the search box is pre-populated withcontext-driven terms present in the user's current message (or possiblypre-populated with context-driven terms present found inpreviously-received message). That is, in this or other cases, thesearch box may be presented with context-driven content based on termspresent in the user's message or thread. This supports an ecosystemwhere email or other messaging delivery can be highly personalized atthe election of the user or authorized agents.

As can now be seen, the user can search directly from the messagewithout having to leave the native email or messaging client in order toopen a separate application (e.g., a browser). Thus the user experienceis greatly enhanced, firstly by having the convenience of the presenceof the search box in the content (and ease of initiating searchactivities), and secondly by virtue of the context and relevance of apre-populated search box. For example, and returning to the earlierdiscussed message thread, if the body of an email includes text in theform of, “Alice: Let's find good restaurants in Paris—Luv, Bob”, theuser (e.g., Alice) can directly initiate a web search for “Parisrestaurants” without leaving the messaging client in order to explicitlylaunch the browser.

Reference will now be made in further detail to various embodiments,some examples of which are illustrated in the accompanying drawings. Itwill be understood that the described embodiments are not intended tolimit the scope of the claims. On the contrary, the embodiments areintended to cover alternatives, modifications and equivalents, which maybe included within the scope of the appended claims. Furthermore, in thefollowing detailed descriptions, numerous specific details are set forthin order to provide a thorough understanding of the exemplaryembodiments. However, one of ordinary skill in the art can recognizethat the present advances may be practiced without these specificdetails. In other instances, well known methods, procedures, components,and circuits have not been described in detail so as avoid unnecessarilyobscuring aspects of the described embodiments.

Throughout the specification and claims, terms may have nuanced meaningssuggested or implied in context beyond an explicitly stated meaning.Likewise, the phrase “in one embodiment” as used herein does notnecessarily refer to the same embodiment and the phrase “in anotherembodiment” as used herein does not necessarily refer to a differentembodiment. It is intended, for example, that claimed subject matterincludes combinations of example embodiments in whole or in part.

In general, terminology may be understood, at least in part, from usagein context. For example, terms such as “and”, “or”, or “and/or” as usedherein may include a variety of meanings that may depend at least inpart upon the context in which such terms are used. Typically, “or”, ifused to associate a list; (for example, a list such as A, B or C), isintended to mean A, B, and C, here used in the inclusive sense, as wellas A, B or C, here used in the exclusive sense. In addition, the term“one or more” as used herein, depending at least in part upon context,may be used to describe any feature, structure, or characteristic in asingular sense or may be used to describe combinations of features,structures, or characteristics in a plural sense. Similarly, terms suchas “a,” “an,” or “the” may be understood to convey a singular usage orto convey a plural usage, depending at least in part upon context. Inaddition, the term “based on” may be understood as not necessarilyintended to convey an exclusive set of factors and may, instead, allowfor the existence of additional factors not necessarily expresslydescribed, depending at least in part on context.

Some portions of the detailed descriptions which follow are presented interms of procedures, steps, logic blocks, processing, and other symbolicrepresentations of operations on data bits within a computer memory.These descriptions and representations are the means used by thoseskilled in the data processing arts to most effectively convey thesubstance of their work to others skilled in the art. A procedure,computer executed step, logic block, process, etc., as may be usedherein is generally conceived to be a self-consistent sequence of stepsor instructions leading to a desired result. The steps are thoserequiring physical manipulations of physical quantities. Usually, thoughnot necessarily, these quantities take the form of electrical ormagnetic signals capable of being stored, transferred, combined,compared, and otherwise manipulated in a computer system. It has provenconvenient at times, principally for reasons of common usage, to referto these signals as bits, values, elements, symbols, characters, terms,numbers, or the like.

It should be borne in mind, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. Unlessspecifically stated otherwise as apparent from the followingdiscussions, it is appreciated that throughout the present disclosure,discussions using terms such as “processing” or “computing” or“communicating” or “instantiating” or “registering” or “selecting”, or“displaying” or the like, refer to the action and processes of acomputer system or similar electronic computing device that manipulatesand transforms data represented as physical (electronic) quantitieswithin the computer system's registers and memories into other datasimilarly represented as physical quantities within the computer systemmemories or registers or other such information storage, transmission ordisplay devices.

Subject matter will now be described more fully hereinafter withreference to the accompanying drawings, which form a part hereof, andwhich show, by way of illustration, specific example embodiments.Subject matter may, however, be embodied in a variety of different formsand, therefore, covered or claimed subject matter is intended to beconstrued as not being limited to any example embodiments set forthherein; example embodiments are provided merely to be illustrative.Likewise, a reasonably broad scope for claimed or covered subject matteris intended. Among other things, for example, subject matter may beembodied as methods, devices, components, or systems. Accordingly,embodiments may, for example, take the form of hardware, software,firmware or any combination thereof (other than software per se). Thefollowing detailed description is, therefore, not intended to be takenin a limiting sense.

Section I: General Terms

Some of the terms used in this description are defined below (inalphabetical order) for easy reference. These terms are not rigidlyrestricted to these definitions. A term may be further defined by theterm's use in other sections of this description.

“Ad” (e.g., ad, item and/or message) means a paid announcement, as ofgoods or services for sale, preferably on a network such as theinternet. An ad may also be referred to as an item and/or a message.

“Ad call” means a message sent by a computer to an ad server forrequesting an ad to be displayed.

“Ad click-through rate” (e.g., click-through rate) means a measurementof ad clicks per a period of time.

“Ad code” means the HTML or other markup language description thatdescribes an advertisement or message in such a manner as can be parsedby a browser. Ad code may include references to other ad code. Ad codemay mean any subset or portion or segment of ad code that describes anadvertisement or message in such a manner as can be parsed by a browser.

An “Ad server” comprises a server that stores online advertisements forpresentation to users. “Ad serving” refers to methods used to placeonline advertisements on websites, in applications, or other placeswhere users are more likely to see them such as during an online sessionor during computing platform use, for example. During presentation ofadvertisements, a presentation system may collect descriptive contentabout types of advertisements presented to users. A broad range ofdescriptive content may be gathered, including content specific to anadvertising presentation system. Advertising analytics gathered may betransmitted to locations remote to an advertising presentation systemfor storage or for further evaluation. Where advertising analyticstransmittal is not immediately available, gathered advertising analyticsmay be stored by an advertising presentation system until transmittal ofthose advertising analytics becomes available.

“Advertiser” (e.g., messenger and/or messaging customer, etc.) means anentity that is in the business of marketing a product and/or a serviceto users. An advertiser may include, without limitation, a seller and/ora third-party agent for the seller. An advertiser may also be referredto as a messenger and/or a messaging customer. Advertising may also bereferred to as messaging.

“Advertising” means marketing a product and/or service to one or morepotential consumers by using an ad. One example of advertising ispublishing a sponsored search ad on a website.

“Ad targeting” or “targeting” refers to web portals like Yahoo!, whereadvertisements may be displayed on web pages resulting from auser-defined search based at least in part upon one or more searchterms. Advertising may be beneficial to users, advertisers, or webportals if displayed advertisements are relevant to interests of one ormore users. Thus, a variety of techniques have been developed to inferuser interest, user intent, or to subsequently target relevantadvertising to users. One approach to presenting targeted advertisementsincludes employing demographic characteristics (e.g., age, income, sex,occupation, etc.) for predicting user behavior, such as by a group.Advertisements may be presented to users in a targeted audience based atleast in part upon predicted user behavior(s). Another approach includesprofile-type ad targeting. In this approach, user profiles specific to auser may be generated to model user behavior, for example, by tracking auser's path through a web site or network of sites, and compiling aprofile based at least in part on pages or advertisements ultimatelydelivered. A correlation may be identified, such as for user purchases,for example. An identified correlation may be used to target potentialpurchasers by targeting content or advertisements to particular users.

“Application server” is a server that is configured for running one ormore devices loaded onto the application server. For example, anapplication server may run a device configured for deducing shadowprofiles.

“Click” (e.g., ad click) means a selection of an ad impression by usinga selection device such as, for example, a computer mouse or atouch-sensitive display.

“Client” means the client part of a client-server architecture. A clientis typically a user device and/or an application that runs on a userdevice. A client typically relies on a server to perform someoperations. For example, an email client is an application that enablesa user to send and receive email via an email server. In this example,the computer running such an email client may also be referred to as aclient.

A “Computing device” means a computing device that may be capable ofsending or receiving signals such as via a wired or wireless network, ormay be capable of processing or storing signals such as in memory asphysical memory states, and may, therefore, operate as a server. Thus,devices capable of operating as a server may include, as examples,dedicated rack-mounted servers, desktop computers, laptop computers, settop boxes, integrated devices combining various features such as two ormore features of the foregoing devices, or the like.

A “Content server” is a server that may include a device that includes aconfiguration to provide content via a network to another device. Acontent server may, for example, host a site such as a social networkingsite, examples of which may include, without limitation, Flicker,Twitter, Facebook, LinkedIn, or a personal user site (such as a blog,vlog, online dating site, etc.). A content server may also host avariety of other sites, including, but not limited to, business sites,educational sites, dictionary sites, encyclopedia sites, wikis,financial sites, government sites, etc.

A content server may further provide a variety of services that include,but are not limited to, web services, third-party services, audioservices, video services, email services, instant messaging (IM)services, SMS services, MMS services, FTP services, voice over IP (VOIP)services, calendaring services, photo services, or the like. Examples ofcontent may include text, images, audio, video, or the like, which maybe processed in the form of physical signals such as electrical signals,for example, or may be stored in memory as physical states, for example.

Examples of devices that may operate as a content server include desktopcomputers, multiprocessor systems, microprocessor-type or programmableconsumer electronics, etc.

“Conversion” (e.g., ad conversion) means a purchase of a product/servicethat happens as a result of a user responding to an ad and/or a coupon.

A “Content delivery network” or “content distribution network” (CDN)refers to a distributed content delivery system that comprises acollection of computers or computing devices linked by a network ornetworks. A CDN may employ software, systems, protocols or techniques tofacilitate various services such as storage, caching, communication ofcontent, or streaming media or applications. Services may also make useof ancillary technologies including, but not limited to, “cloudcomputing,” distributed storage, DNS request handling, provisioning,signal monitoring and reporting, content targeting, personalization, orbusiness intelligence. A CDN may also enable an entity to operate ormanage another's site infrastructure in whole or in part.

“Coupon” (e.g., coupon ad) means a portion of a certificate, ticket,label, ad or the like—set off from the main body by dotted lines or thelike to emphasize its separability—entitling the holder to somethingsuch as a gift or discount, or for use as an order blank or a contestentry form, etc. A coupon is designed in a convenient format for a userto “take” the coupon to a seller to receive an advertised benefit.

“Database” (e.g., database system, etc.) means a collection of dataorganized in such a way that a computer program may quickly selectdesired pieces of the data. A database is an electronic filing system.In some instances, the term “database” is used as shorthand for a“database management system”. A database may be implemented as any typeof data storage structure capable of providing for the retrieval andstorage of a variety of data types. For instance, a database maycomprise one or more accessible memory structures such as a CD-ROM,tape, digital storage library, flash drive, floppy disk, optical disk,magnetic-optical disk, erasable programmable read-only memory (EPROM),random access memory (RAM), magnetic or optical cards, etc.

“Device” means hardware, software or a combination thereof. A device maysometimes be referred to as an apparatus. Examples of a device include,without limitation, a software application such as Microsoft Word™ or adatabase; or hardware such as a laptop computer, a server, a display; ora computer mouse and/or a hard disk.

“Impression” (e.g., ad impression) means a delivery of an ad to a userdevice for viewing by a user.

The “Internet” or “internet” refers to a decentralized global network ofnetworks. The internet includes local area networks (LANs), wide areanetworks (WANs), wireless networks, or long haul public networks that,for example, allow signal packets to be communicated between LANs.Signal packets may be communicated between nodes of a network such as,for example, to one or more sites employing a local network address. Asignal packet may, for example, be communicated over the internet from auser site via an access node coupled to the internet. Likewise, a signalpacket may be forwarded via network nodes to a target site coupled tothe network via a network access node, for example. A signal packetcommunicated via the internet may, for example, be routed via a path ofgateways, servers, etc. that may route the signal packet in accordancewith a target address and the availability of a network path to thetarget address.

“Item” means an ad, which is defined above.

“Marketplace” means a world of commercial activity where products and/orservices are browsed, bought and/or sold, etc. A marketplace may belocated over a network such as the internet. A marketplace may also belocated in a physical environment such as a shopping mall.

“Message” means an ad, which is defined above.

“Messaging” means advertising, which is defined above.

“Messenger” means an advertiser, which is defined above.

“Monetization techniques” or “monetization models” refers to techniquesused in connection with sponsored search advertising, includingadvertising associated with user search queries, or non-sponsored searchadvertising, including graphical or display advertising. In anauction-type online advertising marketplace, advertisers may bid inconnection with placement of advertisements, although other factors mayalso be included in determining advertisement selection or ranking. Bidsmay be associated with amounts advertisers pay for certain specifiedoccurrences such as for placed or clicked-on advertisements, forexample. Advertiser payment for online advertising may be dividedbetween parties including one or more publishers or publisher networks,one or more marketplace facilitators or providers, or potentially amongother parties.

Some models may include guaranteed delivery advertising in whichadvertisers may pay based at least in part on an agreement guaranteeingor providing some measure of assurance that the advertiser will receivea certain agreed upon amount of suitable advertising, or non-guaranteeddelivery advertising, which may include individual serving opportunitiesor spot market(s), for example. In various models, advertisers may paybased at least in part on any of various metrics associated withadvertisement delivery or performance, or associated with measurement orapproximation of particular advertiser goal(s). For example, models mayinclude, among other things, payment based at least in part on cost perimpression or number of impressions, cost per click or number of clicks,cost per action for some specified action(s), cost per conversion orpurchase, or cost based at least in part on some combination of metrics,which may include online or offline metrics, for example. A process ofbuying or selling online advertisements may involve a number ofdifferent entities including advertisers, publishers, agencies,networks, or developers. To simplify this process, organization systemscalled “ad exchanges” may associate advertisers or publishers, such asvia a platform, to facilitate buying or selling of online advertisementinventory from multiple ad networks. “Ad networks” refers to anaggregation of ad space supply from publishers such as for provision enmasse to advertisers.

“Network” means a connection, between any two or more computers, thatpermits the transmission of data. A network may be any combination ofnetworks including, without limitation, the internet, a local areanetwork, a wide area network, a wireless network, and/or a cellularnetwork.

A “Network” means a network that may couple devices so thatcommunications may be exchanged such as between a server and a clientdevice or other types of devices, including between wireless devicescoupled via a wireless network, for example. A network may also includemass storage such as network attached storage (NAS), a storage areanetwork (SAN), or other forms of computer or machine readable media, forexample. A network may include the internet, one or more local areanetworks (LANs), one or more wide area networks (WANs), wire-line typeconnections, wireless type connections, or any combination thereof.Likewise, sub-networks such as may employ differing architectures or maybe compliant or compatible with differing protocols, may interoperatewithin a larger network. Various types of devices may, for example, bemade available to provide an interoperable capability for differingarchitectures or protocols. As one illustrative example, a router mayprovide a link between otherwise separate and independent LANs.

A communication link or channel may include, for example, analogtelephone lines such as a twisted wire pair, a coaxial cable, full orfractional digital lines including T1, T2, T3, or T4 type lines,integrated services digital networks (ISDNs), digital subscriber lines(DSLs), wireless links including satellite links, or other communicationlinks or channels such as may be known to those skilled in the art.Furthermore, a computing device or other related electronic devices maybe remotely coupled to a network such as via a telephone line or link,for example.

A wireless network may couple client devices with a network. A wirelessnetwork may employ stand-alone ad-hoc networks, mesh networks, wirelessLAN (WLAN) networks, cellular networks, or the like. A wireless networkmay further include a system of terminals, gateways, routers, or thelike coupled by wireless radio links, or the like, which may movefreely, randomly or organize themselves arbitrarily, such that networktopology may change, at times even rapidly. A wireless network mayfurther employ a plurality of network access technologies, includinglong term evolution (LTE), WLAN, wireless router (WR) mesh, or 2nd, 3rd,or 4th generation (2G, 3G, or 4G) cellular technology, or the like.Network access technologies may enable wide area coverage for devices,such as client devices with varying degrees of mobility, for example.

For example, a network may enable RF or wireless type communication viaone or more network access technologies such as global system for mobilecommunication (GSM), universal mobile telecommunications system (UMTS),general packet radio services (GPRS), enhanced data GSM environment(EDGE), 3GPP long term evolution (LTE), LTE advanced, wideband codedivision multiple access (WCDMA), Bluetooth, 802.11b/g/n, or the like. Awireless network may include virtually any type of wirelesscommunication mechanism by which signals may be communicated betweendevices such as a client device or a computing device, between or withina network, or the like.

Signal packets communicated via a network, such as a network ofparticipating digital communication networks, may be compatible with orcompliant with one or more protocols. Signaling formats or protocolsemployed may include, for example, TCP/IP, UDP, DECnet, NetBEUI, IPX,Appletalk, or the like. Versions of the internet protocol (IP) mayinclude IPv4 or IPv6.

A “peer-to-peer network” or “P2P network” may employ computing power orbandwidth of network participants in contrast with a network that mayemploy dedicated devices such as dedicated servers, for example;however, some networks may employ both as well as other approaches. AP2P network may typically be used for coupling nodes via an ad hocarrangement or configuration. A peer-to-peer network may employ somenodes capable of operating as both a “client” and a “server.”

“Publisher” means an entity that publishes, on a network, a web pagehaving content and/or ads, etc. ad/or publishes, on a network, adownloadable application and/or other digital context having digitalcontent and/or digital ads, etc.

“Server” means a software application that provides services to othercomputer programs (and their users) on the same computer or on anothercomputer or computers. A server may also refer to the physical computerthat has been set aside to run a specific server application. Forexample, when the software Apache HTTP server is used as the web serverfor a company's website, the computer running Apache may also be calledthe web server. Server applications may be divided among servercomputers over an extreme range, depending upon the workload. Serversmay vary widely in configuration or capabilities, but generally a servermay include one or more central processing units and memory. A servermay also include one or more mass storage devices, one or more powersupplies, one or more wired or wireless network interfaces, one or moreinput/output interfaces, or one or more operating systems such asWindows Server, Mac OS X, Unix, Linux, FreeBSD, or the like.

“Social network” or “social networking website” refers generally to anetwork of individuals such as acquaintances, friends, family,colleagues, or co-workers, coupled via a communications network or via avariety of sub-networks. Potentially, additional relationships maysubsequently be formed as a result of social interaction via thecommunications network or sub-networks. A social network may beemployed, for example, to identify additional connections for a varietyof activities, including, but not limited to, dating, job networking,receiving or providing service referrals, content sharing, creating newassociations, maintaining existing associations, identifying potentialactivity partners, performing or supporting commercial transactions, orthe like.

A social network may include individuals with similar experiences,opinions, education levels or backgrounds. Subgroups may exist or begenerated according to user profiles of individuals, for example, inwhich a subgroup member may belong to multiple subgroups. An individualmay also have multiple “1:few” associations within a social network suchas for family, college classmates, or co-workers.

An individual's social network may refer to a set of direct personalrelationships or a set of indirect personal relationships. A directpersonal relationship refers to a relationship for an individual inwhich communications may be individual-to-individual such as with familymembers, friends, colleagues, co-workers, or the like. An indirectpersonal relationship refers to a relationship that may be available toan individual with another individual although no form ofindividual-to-individual communication may have taken place such as afriend of a friend, or the like. Different privileges or permissions maybe associated with relationships in a social network. A social networkalso may generate relationships or connections with entities other thana person such as companies, brands, or so-called ‘virtual persons.’ Anindividual's social network may be represented in a variety of formssuch as visually, electronically or functionally. For example, a “socialgraph” or “socio-gram” may represent an entity in a social network as anode and may represent a relationship as an edge or a link.

Individuals within one or more social networks may interact orcommunicate with other members of a social network via a variety ofdevices. Multi-modal communication technologies refers to a set oftechnologies that permit interoperable communication across multipledevices or platforms such as cell phones, smartphones, tablet computingdevices, personal computers, televisions, SMS/MMS, email, instantmessenger clients, forums, social networking sites (such as Facebook,Twitter, Google+, etc.), or the like.

“Software” means a computer program that is written in a programminglanguage that may be used by one of ordinary skill in the art. Theprogramming language chosen should be compatible with the computer onwhich the software application is to be executed and, in particular,with the operating system of that computer. Examples of suitableprogramming languages include, without limitation, Object Pascal, C,C++, and/or Java. Further, the functions of some embodiments, whendescribed as a series of steps for a method, could be implemented as aseries of software instructions for being operated by a processor suchthat the embodiments could be implemented as software, hardware, or acombination thereof. Computer-readable media are discussed in moredetail in a separate section below.

“System” means a device or multiple coupled devices. A device is definedabove.

“User” (e.g., consumer, etc.) means an operator of a user device. A useris typically a person who seeks to acquire a product and/or service. Forexample, a user may be a person who is browsing Yahoo!™ Shopping for anew cell phone to replace their current cell phone. The term “user” mayalso refer to a user device, depending on the context.

“User device” (e.g., computer, user computer, client and/or server,etc.) means a single computer or a network of interacting computers. Auser device is a computer that a user may use to communicate with otherdevices over a network such as the internet. A user device is acombination of a hardware system, a software operating system, andperhaps one or more software application programs. Examples of a userdevice include, without limitation, a laptop computer, a palmtopcomputer, a smartphone, a cell phone, a mobile phone, an IBM-typepersonal computer (PC) having an operating system such as MicrosoftWindows™, an Apple™ computer having an operating system such as MAC-OS,hardware having a JAVA-OS operating system, and/or a Sun Microsystems™workstation having a UNIX operating system.

“Web browser” means a software program that may display text or graphicsor both from web pages on websites. Examples of a web browser include,without limitation, Mozilla Firefox™ and Microsoft Internet Explorer™.

“Web page” means documents written in a mark-up language including,without limitation, HTML (hypertext mark-up language), VRML (virtualreality modeling language), dynamic HTML, XML (extensible mark-uplanguage), and/or other related computer languages. A web page may alsorefer to a collection of such documents reachable through one specificinternet address and/or through one specific website. A web page mayalso refer to any document obtainable through a particular URL (uniformresource locator).

“Web portal” (e.g., public portal) means a website or service thatoffers a broad array of resources and services such as, for example,email, forums, search engines, and online shopping malls. The first webportals were online services, such as AOL, that provided access to theweb. However, now, most of the traditional search engines (e.g.,Yahoo!™) have transformed themselves into web portals to attract andkeep a larger audience.

“Web server” is a server configured for serving at least one web page toa web browser. An example of a web server is a Yahoo!™ web server. Aserver is defined above.

Section II: Descriptions of the Figures

FIG. 1 is a data flow diagram of a system for inserting a search boxinto a mobile terminal messaging dialog. As an option, the presentenvironment 100 may be implemented in the context of the architectureand functionality of the embodiments described herein. Of course,however, the environment 100 or any operation therein may be carried outin any desired environment.

FIG. 1 is an example embodiment of an environment 100 for inserting asearch box into a dialog message over an internet messaging protocol inaccordance with some embodiments of the disclosure. As shown, theenvironment 100 comprises a server (e.g., an internet messaging protocolserver 120 ₁) that receives a dialog message from a sending user 105 viaa first user device 102, modifies the dialog message by inserting asearch box, and transmits the modified dialog message 170 to a seconduser's mobile terminal 106.

As seen in FIG. 1, the environment 100 may comprise multiple servers(e.g., internet messaging protocol server 120 ₁, internet messagingprotocol server 120 ₂, etc.). In some embodiments, the server 120 maycomprise a dialog message server in the form of an IMAP server or otherinternet messaging protocol server that receives one or more dialogmessages from users and stores the dialog messages to be viewed and/ortransmitted to other users. The server 120 may receive a dialog message140 from a first user 105. In some embodiments, the first user 105(e.g., a first sending user) may use a computer and/or a smartphone(e.g., a first user device). The first user 105 may compose a portion ofa dialog message intended to be read by the second user 130. In someembodiments, a dialog message 140 from the first user 105 may betransmitted to the server 120 and the dialog message 140 may then bemodified by the server to form a modified dialog message 170 (e.g., withinserted search box 150 and/or other content such as an advertisement),which may then be transmitted to the second user 130. In someembodiments, the second user 130 may comprise a smartphone running anative dialog message client application (e.g., an email client, an SMSclient). The server 120 may insert an instance of an inserted search box150 into the dialog message 140 as received from (e.g., composed by) thefirst user 105 and then transmit the dialog message with theaforementioned instance of an inserted search box 150 to the second user130. In some cases (e.g., in response to a POP request) the second usermay receive the dialog message with the aforementioned instance of aninserted search box 130 in response to a request from the second userdevice 106 to view unread messages.

As shown, the environment 100 comprises two servers, however the showntwo servers can be implemented using a single physical server, or theservers can be separate physical servers. In an exemplary embodiment, afirst server may insert a search box, possibly with additional contentinto a dialog message over an internet messaging protocol, and theadditional content (e.g., an advertisement) can be inserted by a secondserver. In this and other embodiments, when the server is inserting thesearch box and/or additional content into a dialog message, theserver(s) can carry out the insertion by way of an internet messagingprotocol. Thus, content may be placed into dialog messages regardless ofthe type of device that users may use to send and/or receive dialogmessages.

A dialog message composition screen 160 may comprise a dialog messagewritten by a first user (e.g., a written dialog message 110). As usedherein, a written dialog message 110 does not comprise a search box oran advertisement or other content inserted over an internet messagingprotocol. However, as used herein a modified dialog message 170 cancomprise the aforementioned search box and/or additional content.

More particularly, and as shown, in FIG. 1, the dialog messagecomposition screen 160 may comprise a written dialog message 110, whichwritten dialog message 110 comprises at least a portion of the dialogmessage 140. In some embodiments, the written dialog message maycomprise identifiable subject matter (e.g., topics) that may be used todetermine additional content (e.g., search box pre-population text, anadvertisement, etc.) to insert into the dialog message over an internetmessaging protocol.

The dialog message may be generated by inserting the search box asdynamic HTML tags into the protocol (e.g., an internet messagingprotocol) of the dialog message 140. An exchange of messages can occursynchronously or asynchronously, and delivery can be via the techniquesof “push” or “fetch”. Following a fetch protocol, a user 130 (e.g., viaa user device 106) may transmit a request to receive any dialogmessages, and when any are available, they can be sent with the insertedcontent.

In some embodiments, the server 120 may insert content using a dynamicHTML format. For example, the content may be generated as dynamic HTMLtags. The server 120 may insert the search box and corresponding contentby inserting dynamic HTML tags into a dialog message protocolcorresponding to the dialog message 140. For example, the dialog message140 transmitted by the first user 105 may be stored on the server andmay be transmitted to the second user 130 in accordance with aparticular dialog message protocol. For example, when the second user130 requests the dialog message 140 that is stored on the server 120,the dialog message with the inserted search box may be transmitted basedon an internet message access protocol (IMAP), and any search boxdynamic HTML tags may be inserted into an internet messaging protocolcorresponding to the dialog message 140. In some embodiments, the dialogmessage with the search box may be received in a first internetmessaging protocol and then transmitted based on another dialog messageprotocol such as post office protocol (POP). Similarly, the search boxdynamic HTML tags may also be inserted into a dialog messagecorresponding to a first internet messaging protocol and transmittedusing a second internet messaging protocol. Thus, the insertion of thesearch box may be considered to be independent of the type of userdevice, and independent of the internet messaging protocol, andindependent of the native dialog messaging application that a user mayuse on the device in order to read his or her messages. In some usemodels, a user (e.g., user 130) can review his or her messages and canthen use the inserted search box in order to initiate a search activity180. In some use models, a user (e.g., user 130) can perform a searchactivity 180 and reply with a reply message 135 after a reply activity190, possibly using the results of the search activity.

FIG. 2 is a ladder diagram of a protocol 200 for inserting a search boxinto a mobile terminal messaging dialog. As an option, the presentprotocol 200 may be implemented in the context of the architecture andfunctionality of the embodiments described herein. Of course, however,the protocol 200 or any operation therein may be carried out in anydesired environment.

As shown, the protocol serves to carry out a method to insert a searchbox into a dialog message when communicating a message between one userdevice (e.g., a sender-receiver 202) and another user device (e.g., areceiver-sender 206). In the portion of the protocol exchange shown, asender-receiver 202 (e.g., a mobile user device) forms a dialog message(see operation 212) and sends the dialog message (see message 213) to aserver 120. The server 120 in turn executes program code for receivingthe dialog message from the sender-receiver 202. The dialog message maycomprising a plurality of portions of content, including a writtendialog message 110, and any other formatting and/or content as may beapplicable to the specific format of the internet protocol used. Uponreceipt, the server 120 stores the inbound instance of the dialogmessage from the sender-receiver (see operation 214), at least toanalyze the inbound dialog message to determine the format of theinbound dialog message (see operation 216 and operation 218). Forexample, the inbound dialog message might be in an IMAP format, and/orit might be encoded using UNICODE, and/or it might have othercharacteristics or formats that can be determined by the server 120.

In some cases, such as in a POP situation where the email is to bestored until retrieved, the server 120 will store the inbound dialogmessage until such a retrieval request is received. Such a request cancome from a receiver-sender 206 at any point in time once thereceiver-sender 206 has established a connection (see operation 242). Ifthere is a stored dialog message intended for the receiver-sender, thenthe server can respond by modifying the dialog message by inserting asearch box into a selected portion of the dialog message to generate anoutbound dialog message with the search box inserted using the searchbox format (see operation 220). It is also possible that the servercommunicates with a process (possibly on a different server) todetermine any context-dependent or other relevancies (e.g., text topre-populate the search box). In such a case, the outbound dialogmessage might again be stored, even if temporarily (see operation 222).Upon receiving a request from a second user for the dialog message (seemessage 243), the server begins transmitting the outbound dialog messagewith the inserted search box to the second user (see message 224). Thereceiver-sender 206 can review the contents of the received outboundmessage (see operation 244) and can use the inserted search box in orderto initiate a search activity (see operation 246). Of course, thereceiver-sender 206 can also take on the role of sender-receiver, andupon receiving the outbound dialog message (again, see operation 244),the receiver-sender 206 can form a dialog message to send to somerecipient (see operation 248) and send a dialog message to the server120 (see message 252).

FIG. 3 is a diagram of a messaging dialog 300 for inserting a search boxinto a mobile terminal messaging dialog. As an option, the presentmessaging dialog 300 may be implemented in the context of thearchitecture and functionality of the embodiments described herein. Ofcourse, however, the messaging dialog 300 or any operation therein maybe carried out in any desired environment.

As shown in FIG. 3, in addition to the insertion of a search box beinginserted into a dialog message, other types of content such as news,images, video, etc. may also be inserted into the dialog message. Morespecifically, and as is seen in FIG. 3, the modified dialog message 170may comprise a variable amount of dialog message text 360. In someembodiments, the dialog message text 360 may be written by another user(e.g., first user) and transmitted to a user by a server (e.g., aninternet messaging protocol IMAP server 320). For example, the dialogmessage text 360 may comprise some portion or all portions of a dialogmessage (e.g., written dialog message 110) that had been previouslytransmitted to a server. A user may receive the modified dialog message170 after receiving the dialog message from the server. The modifieddialog message 170 may comprise the dialog message text 360 and aninserted search box 150. The inserted search box 150 might be presentedin a top portion of the modified dialog message 170. Or, the insertedsearch box 150 might be presented in a lower portion of the modifieddialog message 170, or in any juxtaposition for that matter.

In some embodiments, the inserted search box 150 may comprise a variableamount of inserted search box text 380. In the same or alternativeembodiments, the inserted search box text 380 may comprise a search boxthat has been targeted to the user receiving the modified dialog message170. The inserted search box may be targeted such that the insertedsearch box text 380 may correspond to the dialog message text 360. Forexample, the inserted search box 150 may be selected to be inserted intothe modified dialog message 170 based on the subject matter of thedialog message text 360 and the subject matter of the inserted searchbox 150. As such, the inserted search box 150 and/or any content to beincluded with the inserted search box 150 may be selected based on thecontext of the dialog message text 360. Strictly as an example, thedialog message text 360 may comprise a message about ‘LASIK’ procedures.The inserted search box 150 may be selected based on keywords of themodified dialog message 170. In some embodiments, the inserted searchbox 150 may be selected for insertion into the modified dialog message170 at least partly based on the geographical location of a user. If auser receiving the modified dialog message 170 is in a particulargeographical area, then some portion or all portions of the insertedsearch box 150 may be selected based on the user's geographical area.

As such, the modified dialog message 170 may comprise a previously sentdialog message from another user with an inserted search box. In someembodiments, the inserted search box may be targeted (e.g., selected tobe inserted into the previously sent dialog message) based on thecontext of the previously sent dialog message and/or a geographicallocation of the user receiving the dialog message. Or, in someembodiments, the inserted search box may be presented with or inproximity to a targeted advertisement 155 the contents of which targetedadvertisement 155 may be based on the context of the previously sentdialog message and/or a geographical location of the user receiving thedialog message. Or, the inserted search box may include or be presentedin proximity to a variable amount of inserted search box text 380, thevariable amount of inserted search box text comprising targeted content.The targeting operations can be performed by a separate server 305.

FIG. 4 is a graphic 400 showing selected portions of a compositionscreen during a transformation for inserting a search box into a mobileterminal messaging dialog. As an option, the present transformation 400may be implemented in the context of the architecture and functionalityof the embodiments described herein. Of course, however, thetransformation 400 or any operation therein may be carried out in anydesired environment.

The graphic of FIG. 4 shows a portion of a dialog message compositionscreen 160. Included in the dialog message composition screen is adialog area 410. Such a dialog area 410 can contain a message or portionof a message to be read (e.g., by a user), possibly including a user'swritten dialog message 110, or portion thereof. The graphic of FIG. 4also shows an exemplary instance of an insertion area 420. The insertionarea serves to present a search box, possibly pre-populated withcontext-driven terms based on the user's message. And, in this or othercases, the search box may be presented with context-driven content givenin the insertion area. In exemplary cases, the context-driven contentgiven in the insertion area is based on terms present in the user'smessage (e.g., terms found within the dialog area).

The insertion area can be presented below the dialog area, or to theright of the dialog area, or can overlap the dialog area (as shown), orcan be presented in any juxtaposition with respect to the dialog area.The aspect ratio can be portrait, or landscape, or any other aspectratio. Moreover the size of the inserted search box can vary, dependingon the characteristics of the user device, and depending on thecharacteristics of the dialog message composition screen 160.

Embodiments described herein can modify the dialog message by changingthe size of any portion of the dialog message. In particular, someembodiments change the size of the dialog area 410 when generating amodified dialog message 170. The size of the inserted search box and anyother content in the insertion area can be determined dynamically, andthe content (e.g., relevant content) and/or any text provided in apre-populated search box can be determined dynamically. Morespecifically, some embodiments include a variable amount of insertedsearch box text 380, and some embodiments can pre-populate the searchbox with text that is at least partly based on the dialog message. Theaspect of the dialog message upon which is based the text topre-populate the search box can be textual or can be graphical. Forexample, if a dialog message contains a particular emoticon (e.g., ahappy face, a social network emoticon, etc.), a sentiment can beinferred, and a separate server 305 can perform targeting. In some casesthe search box can be presented along with an advertisement (e.g., inthe proximity of or within the bounds of insertion area 420). Forexample, and as shown, the modified dialog message 170 contains anexemplary instance of an insertion area 420 that contains anadvertisement for, “That '70s Show”.

In some embodiments, the dialog message is formatted to comport with aninternet messaging protocol, and such a format may comprise HTMLcontent. A server may scan and/or identify contents and sizes of thecontents of the dialog message, and can perform HTML analysis andinsertion of HTML to generate a modified dialog message 170. Table 1shows a portion of the HTML source of the inserted search box.

TABLE 1 Portion of the HTML source of the inserted search box Line Code1 <XHTML-STRIPONREPLY> 2 <script>document.write(“ 3 <img width=1height=1src=“http://geo.yahoo.com/p?s=2146422618&t=258023651&syid=j4ijod060s&pkg=id-2220750>”); 4 </script> 5 <noscript> 6 <img width=1 height=1src=“http://geo.yahoo.com/p?s=2146422618&t=258023651&syid=j4ijod060s&pkg=id-2220750”> 7 </noscript> 8 <script type=“text/javascript”src=“http://d.yimg.com/mi/ywa.js”> 9 </script> 10 <scripttype=“text/javascript”> var YWATracker =YWA.getTracker(“10001615631662”);YWATracker.submit( ); 11 </script> 12<noscript> 13 <div> 14 <img src=“http://a.analytics.yahoo.com/p.pl?a=10001615631662&js=no” width=“1” height=“1” alt=“” /> 15 </div> 16</noscript> 17 <div style=“margin:30px 020px;clear:both;-webkit-text-size- adjust:none;max-width:500px ”> 18<table style=“width:100%;border:1px solid #CCC; background-color:#FFF-webkit-border-radius:5px;” cellspacing=2> 19 <tr> 20 <tdstyle=“background-color:#F0F0F0; padding:5px;”> 21 <bstyle=“font-size:115%;margin:0 0 5px; color:#000;”>TODAY 22 </b> 23 <istyle=“font-size:100%;margin:0;”>(Beta) 24 </i> 25 <bstyle=“color:#7B0099”>&bull; 26 </b> 27<style=“font-size:90%;margin:0;”> Powered by Yahoo! 28 <p style=“font-size:100%;color:#000;margin:0 0 5px;”> 29 <ahref=“http://l2.rd.sp2.yahoo.com/_ylc=X3oDMTFjZ2l1bHE4BF9TAzIxNDY0MjI2MTgEcGtnA2lkLTIyMjA3NTAEc3lpZANqNGlqb2QwNjBz/SIG=1317hj4nf/**http%3A//news.yahoo.com/blogs/sideshow/makeup-reddit-user-posts-startling-photo-212024218.html” style=“color:#16387C ”>Startlingmakeup photo sparks buzz 30 </a> 31 <br> 32 </p> 33 <pstyle=“font-size:90%;margin:0;”> 34 <a href=“http://search.yahoo.com/mobile/searchapp?p=yahoo_search_app&fr=appsrch&tsrc=appsrch” style=“color:#16387C;font-size:70%”>Get Yahoo Search App!35 </a> 36 <b style=“ color:#7B0099”> &bull; 37 </b> 38 <ahref=“http://info.yahoo.com/privacy/us/yahoo/webbeacons/details. html”style=“color:#16387C;font-size:70%” >Privacy Policy 39 </a> 40 <br>

As shown in Table 1, the shown HTML can be inserted into a dialogmessage 140, and (as shown) the HTML includes scripts (e.g., see lines2-4, 8-9, and 10-11) to be inserted into a dialog message 140. Varioustechniques for inserting HTML into a dialog message 140 are furtherdescribed in FIG. 8 and discussion thereto.

FIG. 5 is a graphic 500 showing selected portions of a browser screen510 during a suggestion display 520 in a system for inserting a searchbox into a mobile terminal messaging dialog. As an option, the presentsuggestion display may be implemented in the context of the architectureand functionality of the embodiments described herein. Of course,however, the suggestion display 520 or any operation therein may becarried out in any desired environment.

Given the capability to insert HTML, and/or to insert a script, it ispossible to interact with the user via the text box. In someembodiments, when a user does decide to interact with the search box,embedded code (e.g., HTML or script) that was inserted with the text boxmight prompt the user to select a default search provider. Or, in someembodiments, when a user does decide to interact with the search box,embedded code (e.g., HTML or script) that was inserted with the text boxlaunches a browser on the user device, which in turn might prompt theuser to select a default search provider. For example, HTML that wasinserted with the text box might prompt the user to select a defaultsearch provider being Yahoo!, and the user might receive a suggestiondisplay 520 in the form of an alert (see Table 2). In the example ofFIG. 5, the user receives an alert to set a default search engine, theHTML code for which is partially reproduced in Table 2.

TABLE 2 Portion of the HTML source (showing default browser alert) LineCode 1 <![if !IEMobile]> 2 <br> 3 <center> 4 <form method=“get”action=“http://search.yahoo.com/search” > 5 <input type=“search”name=“p” placeholder=“Search the Web” style=“ width:100%;font-size:90%;height:30px; margin:4px 02px;clear:both;-webkit-text-size-adjust:none;max-width:500px” /> 6<input type=“hidden” value=“imapsrch” name=“fr”> 7 <input type=“hidden”value=“imapsrch” name=“.tsrc”> 8 </form> 9 </center> 10 <![endif]> 11</p> 12 </td> 13 </tr> 14 </table> 15 </div> 16 </XHTML-STRIPONREPLY>

In addition to presenting the alert and soliciting user input, the HTMLof Table 2 includes a check for the browser (see “<![if !IEMobile]>” inline 1 of Table 2). Using such a technique, multiple browsers aresupported. Moreover, inasmuch as one browser differs from anotherbrowser, such differences can be known a priori, and the embedded code(e.g., HTML or script) can process differently to accommodate thebrowser differences.

FIG. 6 is a graphic 600 showing selected portions of a compositionscreen during a search activity for inserting a search box into a mobileterminal messaging dialog. As an option, the present search activity maybe implemented in the context of the architecture and functionality ofthe embodiments described herein. Of course, however, the searchactivity or any operation therein may be carried out in any desiredenvironment.

As shown, the graphic depicts search activity that comprises activitieswhere a user uses a keyboard 610 to enter (or confirm) a search querytext into the search box (e.g., see search query text “USA” as shown).The user then completes the entry (e.g., by selecting the “Done”button). In this embodiment, the act of completing the entry launches abrowser on the user's mobile device, and search results 620 aredisplayed in the search results area 630. As used herein, the launchingof a browser on a mobile terminal comprises launching a mobile terminalbrowser where the mobile terminal browser is based on one of, Gecko orWebKit.

FIG. 7 depicts a block diagram 700 of a system to perform certainfunctions of a computer system. As an option, the present system 700 maybe implemented in the context of the architecture and functionality ofthe embodiments described herein. Of course, however, the system 700 orany operation therein may be carried out in any desired environment.

As shown, system 700 comprises at least one processor and at least onememory, the memory serving to store program instructions correspondingto the operations of the system. As shown, an operation can beimplemented in whole or in part using program instructions accessible bya module. The modules are connected to a communication path 705, and anyoperation can communicate with other operations over communication path705. The modules of the system can, individually or in combination,perform method operations within system 700. Any operations performedwithin system 700 may be performed in any order unless as may bespecified in the claims. The embodiment of FIG. 7 implements a portionof a computer system, shown as system 700, comprising a computerprocessor to execute a set of program code instructions (see module 710)and modules for accessing memory to hold program code instructions toperform: receiving a dialog message from a first user device, the dialogmessage comprising a plurality of portions of content (see module 720);storing the dialog message from the first user device (see module 730);determining, by a computer, a search box format at least partly based onthe dialog message from the first user device (see module 740);modifying the dialog message by inserting a search box into a selectedportion of the dialog message to generate an outbound dialog messagewith the search box inserted using the search box format (see module750); receiving a request from a second user's mobile terminal for thedialog message (see module 760); and transmitting the outbound dialogmessage with the inserted search box to the second user's mobileterminal (see module 770).

FIG. 8 is a flow chart representation of a process flow 800 forinserting a search box into a mobile terminal messaging dialog. As anoption, the present process flow 800 may be implemented in the contextof the architecture and functionality of the embodiments describedherein. Of course, however, the process flow 800 or any operationtherein may be carried out in any desired environment.

As seen in FIG. 8, at block 810, a dialog message may be received. Forexample, a server (e.g., an internet messaging protocol server) mayreceive a dialog message transmitted by a first user to a second user.The server may store the received dialog message in an internetmessaging protocol format. At block 820, portions of content of thedialog message may be identified. For example, the dialog message in aninternet messaging protocol format may comprise a table of contents(TOC) that comprises an identification of one or more types of contentand a size of the content. Or, for example, the stored dialog message inan internet messaging protocol format may comprise a first portion ofHTML content of a size of 1 kilobyte (1024 bytes) and a second portionof text content of 240 bytes. As such, the internet messaging protocolserver may scan and/or identify contents and sizes of the contents ofthe received dialog message in the internet messaging protocol formatdetermined from the TOC of the dialog message. Other scans or analysisof the received dialog message may be performed (see block 820).

Depending on the size allocation of the contents and sizes of thecontents of the received dialog message, a portion of the dialog messagemay be changed. For example, an internet messaging protocol server mayplace the inserted search box 150 into the HTML content of the dialogmessage. As such, an internet messaging protocol server may also changethe identification of the size of the HTML content from the TOC of thedialog message to reflect the size of the inserted search box. Forexample, if the TOC identifies the HTML content portion to comprise (forexample) 1 kilobyte and the search box to be inserted by an internetmessaging protocol server is (for example) 2 kilobytes, then theidentification of the size of the HTML content of the TOC may be changedand/or modified from 1 kilobyte to 2 kilobytes to account for theinserted search box 150.

In some embodiments, the request for the dialog message may be receivedfrom a second user (e.g., a user using a mobile device). For example,the second user may correspond to a smartphone that requests the TOCinformation of the dialog message stored on an internet messagingprotocol server. The second user may transmit a request for anidentification of the portions of content of the dialog message and thecorresponding sizes of the portions of the content (e.g., a dialog area,an image area, etc.) of the dialog message currently stored on aninternet messaging protocol server in an internet messaging protocolformat. In response, an internet messaging protocol server may transmitthe TOC of any dialog messages requested by the second user. In someembodiments, the second user may then transmit a request for at least aportion of the dialog message stored on an internet messaging protocolserver. For example, the second user, after receiving and/or identifyingthe TOC of the dialog message stored on an internet messaging protocolserver, may request a part, segment, and/or portion of at least one ofthe identified portions of the dialog message stored on an internetmessaging protocol server as identified by the TOC of the dialogmessage. For example, the TOC may comprise an identification of a firstportion of content of the dialog message stored on an internet messagingprotocol server as being HTML with a size allocation of 3 kilobytes(e.g., 1 kilobyte corresponding to the HTML content of the dialogmessage as originally received by an internet messaging protocol serverfrom the first user, and 2 kilobytes corresponding to the search boxinserted by an internet messaging protocol server). In response toreceiving such an identification of the contents and corresponding sizeallocations, the second user may request a portion of the content of thedialog message. For example, the second user may request to receive 240bytes of the HTML content of the dialog message stored on an internetmessaging protocol server. In response, an internet messaging protocolserver may transmit the requested 240 bytes of the HTML content of thestored dialog message to the second user. In some embodiments, thesecond user may then request a further portion and/or the rest of thecontent from an internet messaging protocol server. In response, aninternet messaging protocol server may transmit the remaining bytes(e.g., ˜2.8 kilobytes) where the remaining portion comprises theinserted search box as inserted by an internet messaging protocolserver. In some embodiments, if the second user requests a portion ofthe dialog message that includes some, but not all, of the insertedsearch box, then a white space buffer (e.g., empty space) may betransmitted to the second user instead of a partial portion of theinserted search box. For example, if the HTML content of the dialogmessage comprises 1 kilobyte of HTML content as originally sent by thefirst user and 2 kilobytes of the search box (e.g., an HTML search box)inserted by an internet messaging protocol server, and if the seconduser requests 1.5 kilobytes of the HTML content as identified by the TOCof the dialog message, then an internet messaging protocol server maytransmit the 1 kilobyte corresponding to the content originally sent bythe first user and 0.5 kilobytes of empty space or white space as abuffer. As such, in some embodiments, an internet messaging protocolserver may not transmit a portion of the inserted search box and mayonly transmit the full inserted search box to the second user.

At block 820, the dialog message may be scanned for HTML content. Forexample, an internet messaging protocol server may scan the dialogmessage for HTML content. At block 830, a reverse search of the dialogmessage may be performed. For example, an internet messaging protocolserver may perform a reverse search for a last or final HTML body tag inthe HTML content of the dialog message. At block 840, a search box maybe inserted into the HTML content of the dialog message. In someembodiments, the search box may be inserted immediately before the lastor final HTML body tag of the dialog message. As such, the process flow800 may be used in response to a request from a client device that doesnot request a TOC of a dialog message. For example, the process flow 800may be implemented in a user's computer. In some embodiments, a userdevice may specify whether that user will request a TOC or will requestan entire dialog message. For example, a user with a computer with abroadband connection may specify that the user will want the entiredialog message with the inserted search box stored on an internetmessaging protocol server or that a user with a mobile device mayspecify to receive the TOC and a portion of the dialog message with theinserted search box stored on an internet messaging protocol server. Assuch, an internet messaging protocol server may receive a notificationfrom a user specifying how the user may request dialog messages to betransmitted from an internet messaging protocol server to the user.

Section III: Exemplary Practice of Embodiments

FIG. 9 is a schematic diagram 900 illustrating an example embodiment ofan advertising network. Other embodiments that may vary, for example, interms of arrangement or in terms of type of components, are alsointended to be included within the claimed subject matter. As shown,FIG. 9 for example, includes a variety of networks such as a wide areanetwork (WAN)/local area local area network (LAN) 905 and a wirelessnetwork 910; a variety of devices such as client devices (in the formsof a stationary platform 901, a first mobile device 902 ₁, a secondmobile device 902 ₂, and another mobile device 902 ₃); and a variety ofservers such as local content server 907, a remote content server 908, avirtual content server 909, and such as a search server 906.

FIG. 10 is a schematic diagram illustrating an example embodiment of aclient device. A client device 1000 may include a computing devicecapable of sending or receiving signals such as via a wired or awireless network. A client device may, for example, include a desktopcomputer or a portable device such as a cellular telephone, asmartphone, a display pager, a radio frequency (RF) device, an infrared(IR) device, a personal digital assistant (PDA), a handheld computer, atablet computer, a laptop computer, a set top box, a wearable computer,an integrated device combining various features such as features of theforgoing devices, or the like.

A client device may vary in terms of capabilities or features. Claimedsubject matter is intended to cover a wide range of potentialvariations. For example, a cell phone may include a numeric or otherinstance of a keypad 1056 or a display 1054 of limited functionalitysuch as a monochrome liquid crystal display (LCD) for displaying textand symbols. In contrast, however, as another example, a web-enabledclient device may include one or more physical or virtual keyboards,mass storage, one or more accelerometers, one or more gyroscopes, aglobal positioning system (e.g., GPS 1064), or otherlocation-identifying type capability, or a display with a high degree offunctionality such as a touch-sensitive color 2D or 3D display, possiblywith backlighting or other illuminator 1058, or a haptic interface 1062,or another variety of input/output interface 1060, for example.

A client device may include memory 1030, possibly with a section of RAM1032 or other memory (e.g., data storage 1044) or forms of non-volatilememory (e.g., ROM 1034) that can be accessed by a processor (e.g., a CPU1022) and which may execute a variety of basic I/O functions (e.g., BIOS1040) and/or may execute a variety of operating systems 1041, includinga personal computer operating system such as a Windows, iOS or Linux, ora mobile operating system such as iOS, Android, or Windows Mobile, orthe like. A client device may include or may execute a variety ofpossible applications 1042 such as a client software applicationenabling communication with other devices such as communicating one ormore messages using a messenger application 1043, or such as via email,short message service (SMS), or multimedia message service (MMS),including via a network such as a social network, including, forexample, Facebook, LinkedIn, Twitter, Flickr, or Google+, to provideonly a few possible examples. A client device may also include orexecute an application to communicate content such as, for example,textual content, multimedia content, or the like. A client device mayalso include or execute an application to perform a variety of possibletasks such as browsing using a browser 1045, searching, playing variousforms of content, including locally stored or streamed video, audio(e.g., using audio interface 1052) or games (such as fantasy sportsleagues), possibly including networked games or other applications usingone or more instances of network interface 1050. Any of the foregoingfunctional blocks comprising the client device 1000 can be powered byone or more instances of a power supply 1026, and any of the foregoingfunctional blocks comprising the client device 1000 can communicate withany other of the foregoing functional blocks over a communication bus1024. The foregoing is provided to illustrate that claimed subjectmatter is intended to include a wide range of possible features orcapabilities.

FIG. 11 is a schematic diagram 1100 illustrating an environment in whicha search engine 1114 may operate. A crawler component 1116 may beoperable to communicate with a variety of content servers (e.g., contentserver 1106 ₁, content server 1106 ₂, etc.), and with client platforms(e.g., client platform 1102 ₁, client platform 1102 ₂, client platform1102 ₃, client platform 1102 ₄, client platform 1102 ₅, etc.) typicallyvia network 1108. In some embodiments, a crawler starts with a list ofURLs to visit. The list is called a seed list. As the crawler visits theURLs in the seed list, it identifies all the hyperlinks in the page(s)and adds them to a list of URLs to visit, called the crawl frontier.URLs from the crawler frontier are recursively visited according to aset of policies. A crawler typically retrieves files by generating acopy for storage such as local cache storage. A cache refers to apersistent storage device such as cache 1136. A crawler may likewisefollow links, such as HTTP hyperlinks, in the retrieved file toadditional files and may retrieve those files by generating a copy forstorage, and so forth. A crawler may therefore retrieve files from aplurality of content servers as it “crawls” across a network.

An indexer component 1118 may be operable to generate an index ofcontent, including associated contextual content such as for one or moredatabases, which may be searched (e.g., using a search component 1122)to locate content, including contextual content. An index may includeindex entries, where an index entry may be assigned a value referred toas a weight. An index entry may include a portion of the database or aportion of an index data store 1120. In some embodiments, an indexer mayuse an inverted index that stores a mapping from content to itslocations in a database file, or in a document or a set of documents. Arecord level inverted index contains a list of references to documentsfor each word. A word level inverted index additionally contains thepositions of each word within a document. A weight for an index entrymay be assigned. For example, a weight, in one example embodiment, maybe assigned substantially in accordance with a difference between thenumber of records indexed without the index entry and the number ofrecords indexed within the index entry. In some cases, a logon component1134 ensures authentication and authorization of a user to performcertain operations.

The term “Boolean search engine” refers to a search engine capable ofparsing Boolean-style syntax such as may be used in a search query. ABoolean search engine may allow the use of Boolean operators (such asAND, OR, NOT, or XOR) to specify a logical relationship between searchterms. For example, the search query “college OR university” may returnresults with “college,” results with “university,” or results with both,while the search query “college XOR university” may return results with“college” or results with “university,” but not results with both.

In contrast to Boolean-style syntax, “semantic search” refers to asearch technique in which search results are evaluated for relevancebased at least in part on contextual meaning associated with querysearch terms. In contrast with Boolean-style syntax to specify arelationship between search terms, a semantic search may attempt toinfer a meaning for terms of a natural language search query. Semanticsearch may therefore employ “semantics” (e.g., the science of meaning inlanguage) to search repositories of various types of content.

Search results located during a search of an index performed in responseto a search query submission may typically be ranked using a rankingcomponent 1130. An index may include entries with an index entryassigned a value referred to as a weight. A search query may comprisesearch query terms, where a search query term may correspond to an indexentry. In an embodiment, search results may be ranked by scoring locatedfiles or records, for example such as in accordance with the number oftimes a query term occurs weighed in accordance with a weight assignedto an index entry corresponding to the query term. Other aspects mayalso affect ranking such as, for example, the proximity of query termswithin a located record or file, or semantic usage. A score and anidentifier for a located record or file, for example, may be stored in arespective entry of a ranking list. A list of search results may beranked in accordance with scores which may, for example, be provided inresponse to a search query. In some embodiments, machine-learned ranking(MLR) models are used to rank search results. MLR is a type ofsupervised or semi-supervised machine learning problem with the goal toautomatically construct a ranking model from training data.

In one embodiment, as an individual interacts with a softwareapplication (e.g., client application 1104 ₁, client application 1104 ₂,client application 1104 ₃, client application 1104 ₄, client application1104 ₅, etc.) that may implement a plug-in 1129 or other add-on such asan instant messenger or an electronic mail application. Descriptivecontent (e.g., descriptive content 1105 ₁, descriptive content 1105 ₂,etc.) may be identified, and may take on various forms such as in theform of signals or stored physical states within memory (for example, anemail address, instant messenger identifier, phone number, postaladdress, message content, date, time, etc.). Descriptive content may bestored, and is often stored along with contextual content. For example,how a phone number came to be identified (e.g., it was contained in acommunication received from another communication via an instantmessenger application) may be stored as contextual content associatedwith the phone number. Contextual content, therefore, may identifycircumstances surrounding receipt of a phone number (e.g., the date ortime the phone number was received) and may be associated withdescriptive content. Contextual content may, for example, be used tosubsequently search for associated descriptive content. For example, asearch for phone numbers received from specific individuals, receivedvia an instant messenger application or at a given date or time, may beinitiated.

Content within a repository of media or multimedia, for example, may beannotated. Examples of content may include text, images, audio, video,or the like, which may be processed in the form of physical signals suchas electrical signals, for example, or may be stored in memory asphysical states, for example. Content may be contained within an objectsuch as a web object, web page, website, electronic document, or thelike. An item in a collection of content may be referred to as an “itemof content” or a “content item,” and may be retrieved from a “web ofobjects” comprising objects made up of a variety of types of content.The term “annotation” as used herein refers to descriptive or contextualcontent related to a content item, for example, collected from anindividual such as a user, and stored in association with the individualor the content item Annotations may include various fields ofdescriptive content such as a rating of a document, a list of keywordsidentifying topics of a document, etc.

A profile builder 1132 may initiate generation of a profile such as forusers of an application, including a search engine, for example. Aprofile builder may initiate generation of a user profile for use, forexample, by a user, as well as by an entity that may have provided theapplication. For example, a profile builder may enhance relevancedeterminations and thereby assist in indexing, searching, or rankingsearch results. Therefore, a search engine provider may employ a profilebuilder, for example to populate a profile data store 1126, with one ormore profile data records 1128.

A variety of mechanisms may be implemented to generate a profileincluding, but not limited to, collecting or mining navigation history,stored documents, tags, or annotations to provide a few examples. Aprofile builder may store a generated profile. Profiles of users of asearch engine, for example, may give a search engine provider amechanism to retrieve annotations, tags, stored pages, navigationhistory, or the like, which may be useful for making relevancedeterminations of search results such as with respect to a particularuser. A client may interface to a network 1108 via a proxy server 1112.

FIG. 12 is a block diagram 1200 of a computer system, for implementingembodiments. FIG. 12 depicts a system for inserting a search box into amobile terminal messaging dialog, according to some embodiments. Thecomputer system includes nodes for client computer systems 1202 ₁through computer system 1202 _(N), nodes for server computer systems1204 ₁ through 1204 _(N), and nodes for network infrastructure 1206 ₁through 1206 _(N), any of which nodes may comprise a machine (e.g.,computer 1250) within which a set of instructions for causing themachine to perform any one of the techniques discussed above may beexecuted. The embodiment shown is purely exemplary, and might beimplemented in the context of one or more of the figures herein.

Any node of the network may comprise a general-purpose processor, adigital signal processor (DSP), an application specific integratedcircuit (ASIC), a field programmable gate array (FPGA) or otherprogrammable logic device, a discrete gate or transistor logic, discretehardware components, or any combination thereof capable to perform thefunctions described herein. A general-purpose processor may be amicroprocessor, but in the alternative, the processor may be anyconventional processor, controller, microcontroller, or state machine. Aprocessor may also be implemented as a combination of computing devices(e.g., a combination of a DSP and a microprocessor, a plurality ofmicroprocessors, one or more microprocessors in conjunction with a DSPcore, or any other such configuration, etc.).

In alternative embodiments, a node may comprise a machine in the form ofa virtual machine (VM), a virtual server, a virtual client, a virtualdesktop, a virtual volume, a network router, a network switch, a networkbridge, a personal digital assistant (PDA), a cellular telephone, a webappliance, or any machine capable of executing a sequence ofinstructions that specify actions to be taken by that machine. Any nodeof the network may communicate cooperatively with another node on thenetwork. In some embodiments, any node of the network may communicatecooperatively with every other node of the network. Further, any node orgroup of nodes on the network may comprise one or more computer systems(e.g., a client computer system, a server computer system) and/or maycomprise one or more embedded computer systems (including a processorand memory), a massively parallel computer system, and/or a cloudcomputer system.

The computer system (e.g., computer 1250) includes a processor 1208(e.g., a processor core, a microprocessor, a computing device, etc.), amain memory 1210 (e.g., computer memory), and a static memory 1212,which communicate with each other via a system bus 1214. The computer1250 may further include a display unit (e.g., computer display 1216)that may comprise a touch screen, or a liquid crystal display (LCD), ora light emitting diode (LED) display, or a cathode ray tube (CRT). Asshown, the computer system also includes a human input/output (I/O)device 1218 (e.g., a keyboard, an alphanumeric keypad, etc.), a pointingdevice 1220 (e.g., a mouse, a touch screen, etc.), a drive unit 1222(e.g., a disk drive unit, a CD/DVD drive, a tangible computer readableremovable media drive, an SSD storage device, etc.), a signal generationdevice 1228 (e.g., a speaker, an audio output, etc.), and a networkinterface device 1230 (e.g., an ethernet interface, a wired networkinterface, a wireless network interface, a propagated signal interface,etc.).

The drive unit 1222 includes a machine-readable medium 1224 on which isstored a set of instructions (i.e., software, firmware, middleware,etc.) 1226 embodying any one, or all, of the methodologies describedabove. The set of instructions 1226 is also shown to reside, completelyor at least partially, within the main memory and/or within theprocessor 1208. The set of instructions 1226 may further be transmittedor received via the network interface device 1230 over the system bus1214.

It is to be understood that embodiments of this disclosure may be usedas, or to support, a set of instructions executed upon some form ofprocessing core (such as the CPU of a computer) or otherwise implementedor realized upon or within a machine- or computer-readable medium. Amachine-readable medium includes any mechanism for storingnon-transitory information in a form readable by a machine (e.g., acomputer). For example, a machine-readable medium includes read-onlymemory (ROM); random access memory (RAM); magnetic disk storage media;optical storage media; flash memory devices; and electrical, optical oracoustical or any other type of media suitable for storingnon-transitory information.

While the figures and description have been described with reference tonumerous specific details, one of ordinary skill in the art willrecognize that the claimed embodiments can be differently embodied inother specific forms without departing from the scope of the claims.

We claim:
 1. A method to insert a search box into a dialog message, themethod comprising: receiving a dialog message from a first user device,the dialog message comprising a plurality of portions of content;storing the dialog message from the first user device; receiving arequest from a second user's mobile terminal for the dialog message;determining, by a computer, a search box format at least partly based onthe dialog message from the first user device; modifying the dialogmessage by inserting a search box into a selected portion of the dialogmessage to generate an outbound dialog message with the search boxinserted using the search box format; and transmitting the outbounddialog message with the inserted search box to the second user's mobileterminal.
 2. The method as set forth in claim 1, further comprisingpopulating the search box with text at least partly based on the dialogmessage from the first user device.
 3. The method as set forth in claim1, further comprising storing the dialog message in at least one of, anInternet Message Access Protocol (IMAP) format, or a Short MessageService (SMS) format.
 4. The method as set forth in claim 1, furthercomprising launching a mobile terminal browser wherein the mobileterminal browser is based on one of, Gecko, or WebKit.
 5. The method ofclaim 1, wherein the search box comprises an advertisement.
 6. Themethod of claim 1, wherein determining the search box format comprisesanalyzing a markup language.
 7. The method of claim 1, wherein themodifying of the dialog message further comprises changing the size ofthe selected portion of the dialog message based on a size of theinserted search box.
 8. A computer system for inserting a search boxinto a mobile terminal messaging dialog, comprising: a computerprocessor to execute a set of program code instructions; and a memory tohold the program code instructions, in which the program codeinstructions comprises program code to perform, receiving a dialogmessage from a first user device, the dialog message comprising aplurality of portions of content; storing the dialog message from thefirst user device; receiving a request from a second user's mobileterminal for the dialog message; determining, by a computer, a searchbox format at least partly based on the dialog message from the firstuser device; modifying the dialog message by inserting a search box intoa selected portion of the dialog message to generate an outbound dialogmessage with the search box inserted using the search box format; andtransmitting the outbound dialog message with the inserted search box tothe second user's mobile terminal.
 9. The computer system as set forthin claim 8, further comprising populating the search box with text atleast partly based on the dialog message from the first user device. 10.The computer system as set forth in claim 8, further comprising storingthe dialog message in at least one of, an Internet Message AccessProtocol (IMAP) format, or a Short Message Service (SMS) format.
 11. Thecomputer system as set forth in claim 8, further comprising launching amobile terminal browser wherein the mobile terminal browser is based onone of, Gecko, or WebKit.
 12. The computer system as set forth in claim8, wherein the search box comprises an advertisement.
 13. The computersystem as set forth in claim 8, wherein determining the search boxformat comprises analyzing a markup language.
 14. The computer system asset forth in claim 8, wherein the modifying of the dialog messagefurther comprises changing the size of the selected portion of thedialog message based on a size of the inserted search box.
 15. Acomputer program product embodied in a non-transitory computer readablemedium, the computer readable medium having stored thereon a sequence ofinstructions which, when executed by a processor causes the processor toexecute a method to implement inserting a search box into a mobileterminal messaging dialog, the method comprising: receiving a dialogmessage from a first user device, the dialog message comprising aplurality of portions of content; storing the dialog message from thefirst user device; receiving a request from a second user's mobileterminal for the dialog message; determining a search box format atleast partly based on the dialog message from the first user device;modifying the dialog message by inserting a search box into a selectedportion of the dialog message to generate an outbound dialog messagewith the search box inserted using the search box format; andtransmitting the outbound dialog message with the inserted search box tothe second user's mobile terminal.
 16. The computer program product asset forth in claim 15 as set forth in claim 15, further comprisingpopulating the search box with text at least partly based on the dialogmessage from the first user device.
 17. The computer program product asset forth in claim 15, further comprising storing the dialog message inat least one of, an Internet Message Access Protocol (IMAP) format, or aShort Message Service (SMS) format.
 18. The computer program product asset forth in claim 15, further comprising launching a mobile terminalbrowser wherein the mobile terminal browser is based on one of, Gecko,or WebKit.
 19. The computer program product as set forth in claim 15,wherein the search box comprises an advertisement.
 20. The computerprogram product as set forth in claim 15, wherein determining the searchbox format comprises analyzing a markup language.